package com.swf.common.i18n;


import java.util.*;

import org.dom4j.*;
import org.slf4j.*;

import com.swf.common.exception.*;
import com.swf.common.utils.*;

/**
 * description:语言资源实体读入类
 * @version 1.0 2013-5-8
 * @author shenwf
 */
public class ResourceXMLReader extends AbstractXMLReader{
	/**
	 *	资源Element的name 
	 */
	public static final String XML_TAG_NAME_RESOURCE_VALUE = "resourceValue" ;
	/**
	 * 资源Element的Attribute中定义ID的域
	 */
	public static final String XML_TAG_NAME_ID = "id";
	/**
	 * 资源所有
	 */
	private Map<String,Resource> resourceMap = new HashMap<String,Resource>();
	/**
	 * 加载的xml的编码
	 */
	private String encoding;
	private static Logger logger = LoggerFactory
			.getLogger(ResourceXMLReader.class);
	
	/**
	 * 构造器
	 * @param fileName 资源文件路径名称
	 * @throws FwsException 
	 */
	public ResourceXMLReader(String fileName) throws FwsException  {
		this(fileName,null);
	}
	
	/**
	 * 构造器
	 * @param fileName 资源文件路径名称
	 * @param encoding 读取的xml的编码
	 * @throws FwsException 
	 */
	public ResourceXMLReader(String fileName,String encoding) throws FwsException {
		super(fileName, encoding);
	}
	
	/**
	 * 读取资源文件，将读出的资源按照(ID，资源对象)的方式生成HashMap
	 * @return
	 */
	public Map<String,Resource> getResources(){
		ResourceVisitor rv =new ResourceVisitor();
		rootNode.accept(rv);
		return rv.getResourceMap();
	}
	
	
}
